﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;

namespace DataModels.Models
{
    public class AssociatedEarlyInfantDiagnosis
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        [StringLength(50)]
        [Required]
        [ForeignKey("Facility")]
        [Column(TypeName = "varchar")]
        public string FacilityCode { get; set; }
        
        [ForeignKey("Timeframe")]
        public int TimeframeId { get; set; }

        [ForeignKey("CounselingAndTesting")]
        public int CounselingAndTestingId { get; set; }

        [ForeignKey("CreatedByUser")]
        public int CreatedByUserId { get; set; }
        public DateTime DateCreated { get; set; }

        [ForeignKey("UpdatedByUser")]
        public Nullable<int> UpdatedByUserId { get; set; }
        public Nullable<DateTime> UpdateDate { get; set; }


        public int MC10 { get; set; }
        public int MC10_Female { get; set; }
        public int MC10_Male { get; set; }

        public int MC11 { get; set; }
        public int MC11_Female { get; set; }
        public int MC11_Male { get; set; }

        public int MC12 { get; set; }
        public int MC12_Female { get; set; }
        public int MC12_Male { get; set; }

        public int MC13 { get; set; }
        public int MC13_Female { get; set; }
        public int MC13_Male { get; set; }

        public int MC14 { get; set; }
        public int MC14_Female { get; set; }
        public int MC14_Male { get; set; }

        public int MC15 { get; set; }
        public int MC15_Female { get; set; }
        public int MC15_Male { get; set; }

        // Navigation Properties
        public virtual Facility Facility { get; set; }
        public virtual User CreatedByUser { get; set; }
        public virtual User UpdatedByUser { get; set; }
        public virtual TestingAndCounseling CounselingAndTesting { get; set; }
        public virtual Timeframe Timeframe { get; set; }
    }
}
